A number of systems and programs are offered on the market for the design of parts or assemblies of parts, such as the one provided by the applicant under the trademark CATIA. These so-called computer-aided design (CAD) systems allow a user to construct and manipulate complex three-dimensional (3D) models of parts or assemblies of parts. These systems and programs use various constraints for defining models. The set of constraints is solved by the system when the model is edited. The program or system used for solving the set of constraints is generally called a “solver.” Such solvers are used in CAD/CAM/CAE systems or more generally in any system using constraints for defining objects of any kind. A solver is adapted to the objects being designed and to the type of constraints applied to these objects. A solver such as the one used in CATIA is adapted for the design of solid objects, with constraints comprising dimensional constraints, stresses, contacts between objects and the like.
There is a need for a solver making it possible to simulate the deformed shapes of deformable solid physical systems subjected to predetermined load and displacement boundary conditions.
Some flexible systems and objects usually designed in CAD/CAM/CAE systems are characterized by their high deformability (“geometrical non-linearity”) in the sense that distinct points can independently undergo arbitrarily large rotations under the action of loads. In other words, for such flexible systems, the deformed shape of the system may substantially differ from the non-deformed shape of the system. On the other hand, geometrically linear solvers in existing CAD/CAM/CAE systems work under the assumption that the deformed shape of the object is close to the non-deformed shape.
More generally, systems undergoing large rotations, such that the rotation angles in radians cannot be approximated by the tangent—typically 5 degrees, but this figure may vary depending on the amount of modelling error tolerated—are usually considered as “geometrically non-linear systems.” Alternatively, one could say that a system is non-linear when a “large strain” definition such as the Green-Lagrange measure:
      ɛ    ij    GL    =            1      2        ⁡          [                                    ∂                          u              i                                            ∂                          X              j                                      +                              ∂                          u              j                                            ∂                          X              i                                      +                                            ∂                              u                k                                                    ∂                              X                i                                              ⁢                                    ∂                              u                k                                                    ∂                              X                j                                                        ]      cannot be replaced by the “small strain” definition of the strain tensor components:
      ɛ    ij    LIN    =            1      2        ⁢          (                                    ∂                          u              i                                            ∂                          X              j                                      +                              ∂                          u              j                                            ∂                          X              i                                          )      that is, when the product term in the Green-Lagrange measure cannot be neglected.
In general, there is a need in solvers to allow the partial release of degrees of freedom at some restrained points of the system. For instance, one may provide a sliding point, at which the system displacement is restrained in two directions while being allowed to slide along one direction, and possibly to rotate around the sliding direction; in this example, the system has one degree of freedom in translation and one degree of freedom in rotation at that point. As discussed in detail below, the prior art (e.g.: Use of the FEM for the Design of Flexible Parts, C. A. de Hillerin, Proceedings of NAFEMS Word Congress 1999, pp. 345-356) teaches factorising the constraints to account for such situations.
This need, which is present for slender body flexible systems, which are non-linear systems, also arises for linear systems, in which the deformed shape of the system is assumed to be close to the non-deformed shape.
Another feature of slender body flexible systems is that elements of the system in a finite element analysis are subject to displacements having translational and rotational components; the elements are so-called “structural” elements; other examples of structural elements include beams and shells. The need to allow the partial release of degrees of freedom at constrained points is also present in systems modelled using so-called “continuous” elements, where the displacement vector for an element of the system only has translational components. Examples of continuous systems include bars, membranes and solids; the distinction between structural and continuous system is discussed in Finite Elements Procedures in Engineering Analysis, K-J. Bathe, Prentice-Hall 1982. Complex systems may, of course, contain both types of elements in the same model.
The prior art solution of factorising the constraints may involve long and complex computation, especially when the released degrees of freedom do not correspond to the axes of the global reference frame. Thus, there is a need for a solver allowing partial release of degrees of freedom at some restrained points of the system, while making the computation simpler.